<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
	<title>XtPHP :: Documentação</title>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<meta name="generator" content="Geany 0.20" />
</head>

<body>
	<h1>Documentação</h1>
	<h2>XtPHP</h2>
	<h3>Versão 1.0</h3>
	
	<hr />
	
	<h1>O que é XtPHP?</h1>
	
	<hr />
	
	<h1>Classes do XtPHP</h1>
	
	<hr />
	
	<h1>Classe XtTemplate</h1>
		<p>A classe XtTemplate provê uma forma simples e rápida de utilizar modelos (template) em paǵinas PHP.</p>
		
		<h2>Métodos</h2>
			<dl>
				<dt>public merge(array $arr, string $tpl)</dt>
					<dd>
						<p>Mescla os dados passados em $arr com o modelo em $tpl.</p>
						<p>$arr precisa obedecer a seguinte estrutura:</p>
						<?php
						$str = '
						<?php
						array(
							key => value
							,key => array(
								array(
									key => value
								)
								,array(
									key => value
								)
							)
						);
						?>';
						
						highlight_string($str);
						?>
						<p>Onde key representa a chave que delimitará a região de inserção de dados e value, os dados a serem inseridos. Se value for um array, XtTemplate irá interpretá-la recursivamente.</p>
						<p>$tpl deve ser uma string onde os delimitadores de regiões são {{key}} para value como string e {{key:}}value{{:key}}, para início e fim, respectivamente, quando value for array.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>array $arr: dados a serem mesclados com o modelo</li>
								<li>string $tpl: o modelo (template)</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna um string com o modelo mesclado com os dados</p>
					</dd>
			</dl>
		<h2>Exemplos</h2>
		<a href="../examples/index.php?example=template" target="_blank">Ver exemplo</a><br />
		<?php highlight_file('../examples/template.php'); ?>
	
	<hr />
	
	<h1>Classe XtMysql</h1>
		<p>XtMysql oferece formas de interação com o SGBD Mysql.</p>
		
		<h2>Métodos</h2>
			<dl>
				<dt>public connect(string $host, string $user, string $pass, $string $db)</dt>
					<dd>
						<p>Realiza uma conexão com o servidor Mysql.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>string $host: host do servidor. p.e. localhost:3306</li>
								<li>string $user: usuário para acesso ao Mysql.</li>
								<li>string $pass: senha do usuário.</li>
								<li>string $db: nome do banco de dados (schema) para conexão.</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna true em caso de sucesso ou false em caso de falha na conexão.</p>
					</dd>
				
				<dt>public qry(string $sql)</dt>
					<dd>
						<p>Executa uma consulta SQL no Mysql.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>string $sql: uma string de consulta SQL. p.e. SELECT * FROM table_name</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna  um Resource ou false em caso de falha.</p>
					</dd>
				
				<dt>public insert(string $table, array $data, [array $fields])</dt>
					<dd>
						<p>Facilita a inserção de dados no banco de dados.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>string $table: o nome da tabela que receberá os dados.</li>
								<li>array $data: os dados a serem inseridos. É um array multidimensional como <a href="../examples/index.php?example=mysql_insert" target="_blank">neste exemplo</a>.</li>
								<li>array $fields: array com nomes dos 
								campos para inserção caso $data possua outros nomes 
								de campos como índice. (opcional)</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna um array com cada elemento 
							representando true ou false, se sucesso ou 
							falha na inserção.</p>
					</dd>
				
				<dt>public update(string $table, array $data, string 
				$ref)</dt>
					<dd>
						<p>Facilita a atualização de dados no banco de dados.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>string $table: o nome da tabela que receberá os dados.</li>
								<li>array $data: os dados a serem inseridos. É um array 
								multidimensional como <a 
								href="../examples/index.php?example=mysql_update" target="_blank">neste exemplo</a>.</li>
								<li>string $ref: nome do campo que 
								servirá como referência</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna um array com cada elemento 
							representando true ou false, se sucesso ou 
							falha na atualização.</p>
					</dd>
					
				<dt>public delete(string $table, [string $ref], [array 
				$delete])</dt>
					<dd>
						<p>Facilita a deleção de dados no banco de dados.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>string $table: o nome da tabela a 
								ser apagada.</li>
								<li>string $ref: o nome do campo que 
								servirá de referência para filtragem 
								dos dados. Se não 
								especificado, todos os dados serão 
								apagados. [opcional]</li>
								<li>array $delete: array com os 
								valores que servirão de referẽncia 
								para filtrar os dados a serem 
								apagados. [opcional]</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna um array com cada elemento 
							representando true ou false, se sucesso ou 
							falha na deleção.</p>
					</dd>
					
				<dt>public truncate(string $table)</dt>
					<dd>
						<p>Apaga toda a tabela, reiniciando a 
						autonumeração.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>string $table: o nome da tabela a 
								ser apagada.</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna true ou false.</p>
					</dd>
			</dl>
	<hr />
	
	<h1>Classe XtUtils</h1>
		<p>Oferece métodos para diversas tarefas comuns.</p>
		
		<h2>Métodos</h2>
			<dl>
				<dt>public printr(mixed $mixed)</dt>
					<dd>
						<p>Executa a função do PHP print_r passando por parâmetro $mixed, tudo dentro das tags <?php echo htmlentities('<PRE></PRE>'); ?>.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>mixed $mixed: array, string ou outro tipo de variável para ser exibida no navegador.</li>
							</ul>
							
						<h3>Retorno</h3>
							<p>Esta função não retorna nada.</p>
					</dd>
					
				<dt>public inputMask(string $str, string $mask)</dt>
					<dd>
						<p>Formata uma string de acordo com uma máscara.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>string $str: a string a ser formatada.</li>
								<li>string $mask: a máscara a ser aplicada. O caractere coringa é #.</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna a string formatada.</p>
					</dd>
					
				<dt>public number(mixed $number)</dt>
					<dd>
						<p>Converte uma string para número ou um número para string..</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>mixed $number: a string ou o número a ser convertido. Se $number for um número, converte para string, se $numbewr for string, converte para número.</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna o número ou a string.</p>
					</dd>
					
				<dt>public cpfcnpj(int $doc, [bool $test])</dt>
					<dd>
						<p>Formata um número inteiro como CPF ou CNPJ e opcionalmente testa se é um CPF/CNPJ válido</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>int $doc: o número CPF/CNPJ</li>
								<li>bool $test: se true, testa se $doc é válido. Padrão é false.</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna o CPF/CNPJ formatado ou false.</p>
					</dd>
					
				<dt>public clearNumber(string $string)</dt>
					<dd>
						<p>Retira de $string tudo o que não for número.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>string $string: a string a ser tratada</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna um número inteiro.</p>
					</dd>
					
				<dt>public cpfValid(mixed $cpf)</dt>
					<dd>
						<p>Testa se um CPF é válido.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>mixed $cpf: o CPF a ser testado. Pode ser uma string ou um número.</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna true se for válido ou false.</p>
					</dd>
					
				<dt>public cnpjValid(mixed $cnpj)</dt>
					<dd>
						<p>Testa se um CNPJ é válido.</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>mixed $cnpj: o CNPJ a ser testado. Pode ser uma string ou um número.</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna true se for válido ou false.</p>
					</dd>
					
				<dt>public sqlProtect(mixed $str)</dt>
					<dd>
						<p>Trata dados para ser usado em consultas SQL. Ideal para proteger contra ataques de SQLInjection. Aplica as funções do PHP quoted_printable_encode() e addslashes().</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>mixed $str: Uma string ou um array para ser tratado</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna a string ou o array tratado.</p>
					</dd>
					
				<dt>public sqlUnprotect(mixed $str)</dt>
					<dd>
						<p>Desfaz o efeito de sqlProtect().</p>
						<h3>Parâmetros</h3>
							<ul>
								<li>mixed $str: Uma string ou um array para ser tratado</li>
							</ul>
						<h3>Retorno</h3>
							<p>Retorna a string ou o array tratado.</p>
					</dd>
			</dl>
	<hr />
	
	<h1>Classe XtStore</h1>
		<p>XtStore é uma classe do XtPHP que facilita a manipulação de matrizes de dados. XtStore se baseia em STORES, que é um array multidimensional onde a primeira dimensão se refere às linhas e as segundas dimensões são cada conjunto de colunas de cada linha, com o nome dos campos e os dados armazenados, conforme exemplo a seguir.</p>
		
		<strong>Exemplo de um store com dados</strong><br />
		<?php highlight_file('../examples/store.php'); ?><br />
		
		<h2>Métodos</h2>
			<dl>
				<dt>public sort(array $store, array $order)</dt>
					<dd>
						<p>Ordena o store com base na ordem passada em $order. Atualmente suporta ordenação em apenas um campo do store.</p>
						<a href="../examples/index.php?example=store_sort" 
						target="_blank">XtUtils::sort</a><br />
						<?php highlight_file('../examples/store_sort.php'); ?><br />
					</dd>
			</dl>
			
		<h2>Parâmetros</h2>
			<ul>
				<li>array $store: o store a ser ordenado.</li>
				<li>array $order: um array com a opção de ordenação, no seguinte formato: nomedocampo => ordem. A ordenação pode ser ASC (ascendente) ou DESC (descendente).</li>
			</ul>
		
		
		
		<h2>Exemplos</h2>
			<a href="../examples/index.php?example=mysql_connection" target="_blank">Conexão</a><br />
			<?php highlight_file('../examples/mysql_connection.php'); ?><br />
			
			<a href="../examples/index.php?example=mysql_qry" target="_blank">Executando uma consulta SQL</a><br />
			<?php highlight_file('../examples/mysql_qry.php'); ?><br />
			
			<a href="../examples/index.php?example=mysql_insert" target="_blank">Inserindo dados</a><br />
			<?php highlight_file('../examples/mysql_insert.php'); ?><br />
			
			<a href="../examples/index.php?example=mysql_insert2" 
			target="_blank">Inserindo dados com nomes de campos 
			diferentes</a><br />
			<?php highlight_file('../examples/mysql_insert2.php'); ?><br />
			
			<a href="../examples/index.php?example=mysql_update" 
			target="_blank">Alterando dados no Mysql</a><br />
			<?php highlight_file('../examples/mysql_update.php'); ?><br />
			
			<a href="../examples/index.php?example=mysql_delete" 
			target="_blank">Apagando dados no Mysql</a><br />
			<?php highlight_file('../examples/mysql_delete.php'); ?><br />
			
			<a href="../examples/index.php?example=mysql_truncate" 
			target="_blank">"Zerar" tabela do Mysql</a><br />
			<?php highlight_file('../examples/mysql_truncate.php'); ?><br />
			
			<a href="../examples/index.php?example=utils_inputmask" 
			target="_blank">XtUtils::inputMask</a><br />
			<?php highlight_file('../examples/utils_inputmask.php'); ?><br />
			
			<a href="../examples/index.php?example=store_sort" 
			target="_blank">XtUtils::sort</a><br />
			<?php highlight_file('../examples/store_sort.php'); ?><br />
</body>

</html>
